FlowPools: A Lock-Free Deterministic Concurrent Dataflow Abstraction

نویسندگان

  • Aleksandar Prokopec
  • Heather Miller
  • Tobias Schlatter
  • Philipp Haller
  • Martin Odersky
چکیده

Implementing correct and deterministic parallel programs is challenging. Even though concurrency constructs exist in popular programming languages to facilitate the task of deterministic parallel programming, they are often too low level, or do not compose well due to underlying blocking mechanisms. In this paper, we present the design and implementation of a fundamental data structure for composable deterministic parallel dataflow computation through the use of functional programming abstractions. Additionally, we provide a correctness proof, showing that the implementation is linearizable, lock-free, and deterministic. Finally, we show experimental results which compare our FlowPool against corresponding operations on other concurrent data structures, and show that in addition to offering new capabilities, FlowPools reduce insertion time by 49− 54% on a 4-core i7 machine with respect to comparable concurrent queue data structures in the Java standard library.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Multi-Lane FlowPools: A detailed look

FlowPools, proposed by [4] are a powerful way to express dataflow logic in highly parallelized applications. The original paper proposes two ways of implementing a FlowPool: Single-Lane FlowPools (SLFP) and Multi-Lane FlowPools (MLFP). While SLFPs showed decent performance overall, insertion operations do not scale. MLFPs solve this limitation as benchmarks discussed in [4] have shown. This rep...

متن کامل

The VerCors Tool Set: Verification of Parallel and Concurrent Software

models are process algebra terms Wytse Oortwijn, UTwente Verifying Concurrent Software 25 / 30 Introduction Deterministic Parallelism GPU Kernels Model Abstractions Conclusion Our approach: deducative + algorithmic verification requires Process(P); ensures Process(ε); void main(args) { S1 ‖ S2; } Process algebras abstraction Algorithmic analysis input Temporal properties LTL, CTL, etc. input De...

متن کامل

Abstract Semantic Diffing of Evolving Concurrent Programs

Semantic Diffing of Evolving Concurrent Programs Ahmed Bouajjani, Constantin Enea, and Shuvendu Lahiri 1 IRIF, Univ. Paris Diderot, {abou,cenea}@irif.fr 2 Microsoft Research, [email protected] Abstract. We present an approach for comparing two closely related concurrent programs, whose goal is to give feedback about interesting differences without relying on user-provided assertions. This ...

متن کامل

Boundedness vs. Unboundedness of Lock Chains: Characterizing Decidability of CFL-Reachability for Threads Communicating via Locks

The problem of Pairwise CFL-reachability is to decide whether two given program locations in different threads are simultaneously reachable in the presence of recursion in threads and scheduling constraints imposed by synchronization primitives. Pairwise CFL-reachability is the core problem underlying concurrent program analysis especially dataflow analysis. Unfortunately, it is undecidable eve...

متن کامل

A Type System for Lock-Free Processes

Interpretation. An alternative way to analyze the behavior of a concurrent program would be to use abstract interpretation [4, 5]. Actually, from a very general viewpoint, our type-based analysis of locks can be seen as a kind of abstract interpretation. We can read a type judgment Γ ⊢ P as “Γ is an abstraction of a concrete process P .” (The relation “⊢” corresponds to a pair of abstraction/co...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012